<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- 静态传值(movies) 动态传值(des)
             父组件在使用子组件的时候,可以将父组件的数据绑定到使用子组件的标签上
             子组件在选项中添加一个props属性来接收数据
        -->
        <!-- <my-son movies="唐人街探案3,你好李焕英" :des="msg"></my-son> -->
        <my-son  :clist="list" mymsg="abc"></my-son>
    </div>
    <!--组件模板 分离 -->
    <template id="son">
        <div style="border: 1px solid red;">
            <h2>这是子组件</h2>
            <!-- <h3>电影名称：{{movies}}</h3>
            <h4>{{des}}</h4> -->
            <h2 v-for="item in clist" :key="item.id">{{item}}</h2>
            <h3>{{cmsg}}</h3>
			<h3>{{mymsg}}</h3>
        </div>
    </template>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
    <script type="text/javascript">
        let MySon = {
            template:'#son',
            //子组件定义props接收数据并使用
            //数组中存放的是自定义属性的名称
            //props:['movies','des']//数组写法
            //对象写法
            props:{
                // clist:Array,//数组类型
                // clist:String
                // 一个属性，限制多个类型(建议使用数组)
                clist:[String,Array],//注意不要使用引号引起了
                // 可以使用默认值，以及一些必传值
                cmsg:{
                    /*默认值触发：
                        当在template使用了props的属性，但是并没有给他传递数据时会触发
                    */ 
                    type:String,
                    default:'这个是cmsg'
                    //required:true,//这个属性表示必须传值，但是不能和default同用
                },
                mymsg:{
                    type:String,
                    required:true,//数据是否传递，true是，false否
                }            
            }
        }
        new Vue({
            el:'#app',
            data: {
                msg:'这是父组件中的msg',
                list:["土豆","大象","鸡肉","飞机"]
            },
            components: {
                //注册子组件
                MySon
            }
        })
    </script>
</body>
</html>